
const app = getApp();
// mine.js
Page({
  data: {
    showcustomerservice: false, // 客服弹窗显示控制
    list: [1, 2, 3, 3, 3, 3, 3],
    totalHeaderHeightall: "",
    isLoggedIn: false,
    userInfo: null,
    showtan: false,
    userSchoolName: '中南大学'
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function () {
    this.setData({
      totalHeaderHeightall: app.globalData?.totalHeaderHeight
    })

    // 检查用户登录状态
    this.checkLoginStatus();
  },

  /**
   * 图片点击事件，显示客服弹窗
   */
  onImageTap: function () {
    this.setData({
      showcustomerservice: true
    });
  },

  /**
   * 客服弹窗关闭回调
   */
  onActivityModalClose: function () {
    this.setData({
      showcustomerservice: false
    });
  },

  /**
   * 检查用户登录状态
   */
  checkLoginStatus: function () {
    // 从缓存中获取token
    const token = wx.getStorageSync('userToken');

    if (token) {
      // 有token时，从接口获取最新的用户信息
      const that = this;
      app.api.getUserInfo().then(res => {
        console.log('获取用户信息成功:', res);

        // 检查响应数据
        if (res && res.code === 200 && res.data) {
          // 更新用户信息到缓存（可选，用于页面刷新时快速显示）
          wx.setStorageSync('userInfo', res.data);

          that.setData({
            isLoggedIn: true,
            userInfo: res.data,
            userSchoolName: res.data.school_name || that.data.userSchoolName
          });
        } else {
          // 接口返回错误，清除token和用户信息
          wx.removeStorageSync('userToken');
          wx.removeStorageSync('userInfo');
          that.setData({
            isLoggedIn: false,
            userInfo: null,
            userSchoolName: '中南大学'
          });
        }
      }).catch(err => {
        console.error('获取用户信息失败:', err);
        // 网络错误，尝试使用缓存的用户信息（如果有）
        const cachedUserInfo = wx.getStorageSync('userInfo');
        if (cachedUserInfo) {
          that.setData({
            isLoggedIn: true,
            userInfo: cachedUserInfo,
            userSchoolName: cachedUserInfo.school_name || '中南大学'
          });
        } else {
          that.setData({
            isLoggedIn: false,
            userInfo: null
          });
        }
      });
    } else {
      // 没有token，清除缓存的用户信息
      wx.removeStorageSync('userInfo');
      this.setData({
        isLoggedIn: false,
        userInfo: null,
        userSchoolName: '中南大学'
      });
    }
  },

  /**
   * 生命周期函数--监听页面显示
   * 页面显示时需要检查登录状态，确保退出登录后能正确显示登录按钮
   */
  onShow: function () {
    // 快速检查登录状态（不调用接口，只检查本地缓存）
    const token = wx.getStorageSync('userToken');
    const cachedUserInfo = wx.getStorageSync('userInfo');

    if (token && cachedUserInfo) {
      this.setData({
        isLoggedIn: true,
        userInfo: cachedUserInfo,
        userSchoolName: cachedUserInfo.school_name || '中南大学'
      });
    } else {
      // 没有token或用户信息，设置为未登录状态
      this.setData({
        isLoggedIn: false,
        userInfo: null
      });
    }
  },

  /**
   * 跳转到登录页面
   */
  goToLogin: function () {
    wx.navigateTo({
      url: '/pages/logins/logins'
    });
  },

  clearthis: function () {
    this.setData({
      types: "",
      showtan: false,
      tishititle: "",
      tishimessage: "",
    })
  },
  queren: function () {

    this.setData({
      showtan: false,
      tishititle: "",
      tishimessage: "",
    })
    if (this.data.types == '确认退出') {
      // 清除token和用户信息
      wx.removeStorageSync('userToken');
      wx.removeStorageSync('userInfo');

      // 更新页面状态
      this.setData({
        isLoggedIn: false,
        userInfo: null,
        userSchoolName: '中南大学'
      });

      wx.showToast({
        title: '已退出登录',
        icon: 'success',
        duration: 2000
      });
    }



  },
  /**
   * 退出登录
   */
  logout: function () {
    this.setData({
      types: "确认退出",
      showtan: true,
      tishititle: "确认退出",
      tishimessage: "确定要退出登录吗？?",
    })



  },

  /**
   * 生命周期函数--监听页面渲染完成
   */
  onReady: function () {
    // 页面渲染完成后，获取自定义头部组件实例
    this.headerComponent = this.selectComponent('#customHeader');
  },

  /**
   * 初始化系统信息
   */
  initSystemInfo: function () {
    try {
      // 获取系统信息
      const systemInfo = wx.getSystemInfoSync();
      // 获取状态栏高度
      const statusBarHeight = systemInfo.statusBarHeight;

      // 获取胶囊按钮位置信息
      const menuButtonInfo = wx.getMenuButtonBoundingClientRect();

      // 计算导航栏高度
      const navBarHeight = statusBarHeight + (menuButtonInfo.bottom - menuButtonInfo.top);

      // 设置默认内容padding-top，确保内容不被头部遮挡
      const contentPaddingTop = navBarHeight + 20; // 额外加20rpx的边距

      this.setData({
        statusBarHeight: statusBarHeight,
        navBarHeight: navBarHeight,
        menuButtonWidth: menuButtonInfo.width,
        contentPaddingTop: contentPaddingTop
      });
    } catch (e) {
      console.error('获取系统信息失败:', e);
      // 降级处理，使用默认高度
      this.setData({
        statusBarHeight: 20,
        navBarHeight: 64,
        menuButtonWidth: 80,
        contentPaddingTop: 84
      });
    }
  },

  /**
   * 监听头部高度变化事件
   */
  onHeaderHeightChange: function (e) {
    const { totalHeight, statusBarHeight, headerHeight } = e.detail;

    // 更新页面数据
    this.setData({
      statusBarHeight: statusBarHeight,
      navBarHeight: totalHeight,
      contentPaddingTop: totalHeight + 20 // 额外加20rpx的边距
    });
  },

  /**
   * 跳转到关于我们页面
   */
  navigateToAboutUs: function () {
    wx.navigateTo({
      url: '/pages/aboutus/aboutus'
    });
  },

  /**
   * 点击客服跳转到微信聊天页面
   */
  onServiceTap: function () {
    // 对于个人开发者，使用简化版的客服消息接口调用
    // 不需要corpId等企业相关参数
    wx.openCustomerServiceChat({
      // 个人开发者只需使用简单配置
      success: (res) => {
        console.log('成功打开客服会话', res);
      },
      fail: (err) => {
        console.error('打开客服失败', err);
        // 如果打开失败，显示备用联系方式
        // this.showContactInfoWithFallback();
      }
    });
    return
  },

  // 抽取为单独的方法，便于重用
  showContactInfoWithFallback: function () {
    wx.showModal({
      title: '联系客服',
      content: '由于系统限制，无法直接跳转\n\n客服微信号：wxid_jcn400kr3y7v22\n\n点击确定自动复制微信号',
      showCancel: true,
      cancelText: '取消',
      confirmText: '复制',
      success: function (res) {
        if (res.confirm) {
          // 复制微信号到剪贴板
          wx.setClipboardData({
            data: 'wxid_jcn400kr3y7v22',
            success: function () {
              wx.showToast({
                title: '微信号已复制，请手动添加',
                icon: 'success',
                duration: 3000
              });
            },
            fail: function (copyError) {
              console.error('复制微信号失败:', copyError);
              wx.showToast({
                title: '复制失败，请手动输入微信号',
                icon: 'none',
                duration: 3000
              });
            }
          });
        }
      },
      fail: function (modalError) {
        console.error('显示联系方式失败:', modalError);
      }
    });
  }
});
